package com.tsingteng.cosfun.http;


import com.tsingteng.cosfun.bean.AddVideoCommentResultBean;
import com.tsingteng.cosfun.bean.AttentFansbean;
import com.tsingteng.cosfun.bean.AttentRecommendbean;
import com.tsingteng.cosfun.bean.Attentionbean;
import com.tsingteng.cosfun.bean.AwkwardBean;
import com.tsingteng.cosfun.bean.BaseBackBean;
import com.tsingteng.cosfun.bean.BaseDataBean;
import com.tsingteng.cosfun.bean.BlindResp;
import com.tsingteng.cosfun.bean.CenterThreeNotification;
import com.tsingteng.cosfun.bean.ChatBean;
import com.tsingteng.cosfun.bean.CommBackBean;
import com.tsingteng.cosfun.bean.CommBean;
import com.tsingteng.cosfun.bean.DataBean;
import com.tsingteng.cosfun.bean.FansNotificationBean;
import com.tsingteng.cosfun.bean.FollowBean;
import com.tsingteng.cosfun.bean.FoundAtBean;
import com.tsingteng.cosfun.bean.FoundBean;
import com.tsingteng.cosfun.bean.HomeBean;
import com.tsingteng.cosfun.bean.JoinCostarBean;
import com.tsingteng.cosfun.bean.LabelBean;
import com.tsingteng.cosfun.bean.MessageReportBean;
import com.tsingteng.cosfun.bean.MessageVideoCommentBean;
import com.tsingteng.cosfun.bean.NotificationBean;
import com.tsingteng.cosfun.bean.OpusBean;
import com.tsingteng.cosfun.bean.ParagraphBean;
import com.tsingteng.cosfun.bean.ParagraphComment;
import com.tsingteng.cosfun.bean.PersonBean;
import com.tsingteng.cosfun.bean.PlayBean;
import com.tsingteng.cosfun.bean.PlayCommont;
import com.tsingteng.cosfun.bean.PlayDetailsBean;
import com.tsingteng.cosfun.bean.ProfileAdressBean;
import com.tsingteng.cosfun.bean.PullBlackBean;
import com.tsingteng.cosfun.bean.RecommenResp;
import com.tsingteng.cosfun.bean.ReportBean;
import com.tsingteng.cosfun.bean.SearchResp;
import com.tsingteng.cosfun.bean.SearchUserResp;
import com.tsingteng.cosfun.bean.SystemNotificationBean;
import com.tsingteng.cosfun.bean.ThirdBindBean;
import com.tsingteng.cosfun.bean.UploadReportBean;
import com.tsingteng.cosfun.bean.UserBean;
import com.tsingteng.cosfun.bean.UserCommentResultBean;
import com.tsingteng.cosfun.bean.VidePersonBean;
import com.tsingteng.cosfun.bean.VideoPriseResultBean;
import com.tsingteng.cosfun.bean.VideoSignBean;
import com.tsingteng.cosfun.bean.Bean;


import java.util.List;

import io.reactivex.Observable;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;


/**
 * 描述:
 * 创建人: 肖利
 * 时间: 2018/7/30
 * qq: (872179966)
 */

public interface ApiService {


    /**
     * 登录
     *
     * @param mobile
     * @param verifyCode
     * @param timestamp
     * @return
     */

    @FormUrlEncoded
    @POST(Url.LOGIN)
    Observable<BaseDataBean<UserBean>> login(@Field("mobile") String mobile, @Field("verify_code") String verifyCode, @Field("timestamp") String timestamp);

    /**
     * 验证码
     *
     * @param mobile
     * @param verifyType
     * @param timestamp
     * @return
     */
    @FormUrlEncoded
    @POST(Url.VERIFY_CODE)
    Observable<BaseDataBean<UserBean>> verifyCode(@Field("mobile") String mobile, @Field("verify_type") String verifyType, @Field("timestamp") String timestamp);

    /**
     * 得到七牛的签名
     *
     * @return
     */
    @FormUrlEncoded
    @POST(Url.SIGNA_TURE)
    Observable<BaseDataBean<VideoSignBean>> getSignaTure(@Field("type") String type);

    /**
     * 得到便当的列表
     *
     * @param currentPage
     * @param count
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PLAY_LIST)
    Observable<BaseDataBean<PlayBean>> getPlayList(@Field("page_no") String currentPage, @Field("page_size") String count);

    /**
     * 系谱详情
     *
     * @param paragraph_id
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PLAY_DETAILS)
    Observable<BaseDataBean<PlayDetailsBean>> getPlayDetails(@Field("paragraph_id") String paragraph_id);

    /**
     * 系谱详情评论列表
     *
     * @param paragraph_id
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PLAY_DETAILS_COMMONT_LIST)
    Observable<BaseDataBean<PlayCommont>> getPlayDetailsCommontList(@Field("paragraph_id") String paragraph_id, @Field("page_no") String current_page, @Field("page_size") String count);

    /**
     * 系统通知
     */
    @FormUrlEncoded
    @POST(Url.SYSTEM_NOTIFICATION)
    Observable<BaseDataBean<SystemNotificationBean>> getSystemNotification(@Field("type") String paragraph_id, @Field("page") int page, @Field("page_size") int page_size);

    /**
     * 用户通知
     */
    @FormUrlEncoded
    @POST(Url.USER_NOTIFICATION)
    Observable<BaseDataBean<NotificationBean>> getUserNotification(@Field("type") String paragraph_id, @Field("page") int page, @Field("page_size") int page_size);

    /**
     * 用户通知
     */
    @FormUrlEncoded
    @POST(Url.USER_NOTIFICATION)
    Observable<BaseDataBean<CenterThreeNotification>> getCenterThreeNotification(@Field("type") String paragraph_id, @Field("page") int page, @Field("page_size") int page_size);

    /**
     * 粉丝通知
     */
    @FormUrlEncoded
    @POST(Url.USER_NOTIFICATION)
    Observable<BaseDataBean<FansNotificationBean>> getFansNotification(@Field("type") String paragraph_id, @Field("page") int page, @Field("page_size") int page_size);

    /**
     * 赞我通知
     */
    @FormUrlEncoded
    @POST(Url.USER_NOTIFICATION)
    Observable<BaseDataBean<NotificationBean>> getPraiseNotification(@Field("type") String paragraph_id, @Field("page") int page, @Field("page_size") int page_size);

    /**
     * 添加便当
     */
    @FormUrlEncoded
    @POST(Url.PLAY_ADD)
    Observable<BaseDataBean<String>> getAddPlay(@Field("content") String content);

    /**
     * 删除便当
     */
    @FormUrlEncoded
    @POST(Url.PLAY_DEL)
    Observable<BaseDataBean<String>> getDelPlay(@Field("paragraph_id") String paragraph_id);

    /**
     * 添加不喜欢的段子
     */
    @FormUrlEncoded
    @POST(Url.NO_LIKE_PLAY_ADD)
    Observable<BaseDataBean<String>> getAddNotLikePlay(@Field("paragraph_id") String paragraph_id);


    /**
     * 删除便当
     */
    @FormUrlEncoded
    @POST(Url.PLAY_DEL)
    Call<BaseDataBean<String>> getDelePlay(@Field("paragraph_id") String paragraph_id);

    /**
     * 添加不喜欢的段子
     */
    @FormUrlEncoded
    @POST(Url.NO_LIKE_PLAY_ADD)
    Call<BaseDataBean<String>> getAddNoLikePlay(@Field("paragraph_id") String paragraph_id);


    /**
     * 段子或者评论点赞或取消点赞 点赞类型0-段子 1-段子评论或回复
     *
     * @param id
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PRAISE_OR_NOT)
    Observable<BaseDataBean<Integer>> getPraiseOrNot(@Field("praise_type") String praise_type, @Field("object_id") String id, @Field("type") String type);

    /**
     * 观看便当时长
     *
     * @param start_time
     * @param time_length
     * @return
     */
    @FormUrlEncoded
    @POST(Url.XI_PU_TIMESTATISITC)
    Observable<BaseDataBean<DataBean>> getDataLongTime(@Field("start_time") String start_time, @Field("time_length") String time_length);

    /**
     * 段子或者评论点赞或取消点赞 点赞类型0-段子 1-段子评论或回复
     *
     * @param id
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PRAISE_OR_NOT)
    Call<BaseDataBean<Integer>> getPraise(@Field("praise_type") String praise_type, @Field("object_id") String id, @Field("type") String type);


    /**
     * //段子或者评论点赞或取消点赞 点赞类型0-段子 1-段子评论或回复
     *
     * @param paragraph_id
     * @param comment_type
     * @param content
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PLAY_COMMENT_ADD)
    Observable<BaseDataBean<ParagraphComment>> getAddPlayComment(@Field("paragraph_id") String paragraph_id, @Field("comment_type") String comment_type, @Field("content") String content, @Field("comment_object_id") String comment_object_id);


    @FormUrlEncoded
    @POST(Url.PLAY_COMMENT_ADD)
    Call<BaseDataBean<ParagraphComment>> getAddPlayCommentMessage(@Field("paragraph_id") String paragraph_id, @Field("comment_type") String comment_type, @Field("content") String content, @Field("comment_object_id") String comment_object_id);
    /**
     * 私信通知
     */
    @FormUrlEncoded
    @POST(Url.USER_NOTIFICATION)
    Observable<BaseDataBean<ChatBean>> getChatNotification(@Field("type") String paragraph_id, @Field("page") int page, @Field("page_size") int page_size, @Field("source") int source);

    /**
     * QQ登录
     */
    @FormUrlEncoded
    @POST(Url.LOGON_QQ)
    Observable<BaseDataBean<UserBean>> getQQLogon(@Field("open_id") String open_id, @Field("thirdparty_token") String thirdparty_token, @Field("timestamp") String timestamp, @Field("login_type") String login_type, @Field("headpic") String headpic, @Field("nickname") String nickname);

    /**
     * 关注某人
     */
    @FormUrlEncoded
    @POST(Url.FOLLOW_PERSON)
    Observable<BaseDataBean<FollowBean>> getFollowPerson(@Field("followee_id") String id);

    /**
     * 取消关注某人
     */
    @FormUrlEncoded
    @POST(Url.NO_FOLLOW)
    Observable<BaseDataBean<FollowBean>> getNoFollow(@Field("followee_id") String id);

    /**
     * 关注某人
     */
    @FormUrlEncoded
    @POST(Url.FOLLOW_PERSON)
    Call<BaseDataBean<FollowBean>> followPerson(@Field("followee_id") String id);

    /**
     * 取消关注某人
     */
    @FormUrlEncoded
    @POST(Url.NO_FOLLOW)
    Call<BaseDataBean<FollowBean>> noFollow(@Field("followee_id") String id);


    /**
     * 登录上报
     */
    @FormUrlEncoded
    @POST(Url.LOGIN_AND_REPORT)
    Observable<BaseDataBean<ReportBean>> getLoginAndReport(@Field("reg_id") String reg_id, @Field("type") String type, @Field("timestamp") String timestamp);

    /**
     * 首页推荐作品
     */
    @FormUrlEncoded
    @POST(Url.HOME_OPUS)
    Observable<BaseDataBean<HomeBean>> getHomeData(@Field("page_no") String page_no, @Field("page_size") String page_size, @Field("timestamp") String timestamp, @Field("sign") String sign);

    /**
     * 关注视频列表
     */
    @FormUrlEncoded
    @POST(Url.HOME_FOLLOW_OPUS)
    Observable<BaseDataBean<HomeBean>> getFoucsData(@Field("page_no") String page_no, @Field("page_size") String page_size, @Field("timestamp") String timestamp, @Field("sign") String sign);

    /**
     * 视频点赞
     */
    @FormUrlEncoded
    @POST(Url.WORK_LIKE)
    Observable<BaseDataBean<CommBackBean>> getOpusZan(@Field("workId") String workId, @Field("c") String c, @Field("deviceId") String deviceId, @Field("type") String type);

    /**
     * 视频评论点赞
     */
    @FormUrlEncoded
    @POST(Url.COMMENT_LIKE)
    Observable<BaseDataBean<CommBackBean>> getCommZan(@Field("workId") String workId, @Field("c") String c, @Field("deviceId") String deviceId, @Field("type") String type);

    /**
     * 不感兴趣
     */
    @FormUrlEncoded
    @POST(Url.LOSEINTEREST)
    Observable<BaseDataBean<CommBackBean>> getLoseInterest(@Field("workId") String workId, @Field("timestamp") String timestamp, @Field("type") String type);

    /**
     * 关注列表
     */
    @FormUrlEncoded
    @POST(Url.FOLLOW_LIST)
    Observable<BaseDataBean<Attentionbean>> getAttentionList(@Field("page_no") String page_no, @Field("page_size") String page_size, @Field("deviceId") String deviceId, @Field("c") String c);

    /**
     * 关注
     */
    @FormUrlEncoded
    @POST(Url.FOLLOW_ADD)
    Observable<BaseDataBean<String>> getAttention(@Field("workId") String workId, @Field("c") String c, @Field("deviceId") String deviceId, @Field("type") String type);

    /**
     * 评论
     */
    @FormUrlEncoded
    @POST(Url.OPUS_COMM)
    Call<BaseBackBean> getComm(@Field("isTop") int isTop,@Field("workId") String workId, @Field("c") String c, @Field("deviceId") String deviceId, @Field("parentCommentId") String parentCommentId, @Field("userId") String userId, @Field("commentMsg") String commentMsg);

    /**
     * 评论列表
     */
    @FormUrlEncoded
    @POST(Url.COMM_LIST)
    Call<BaseDataBean<CommBean>> getCommList(@Field("profileId") String userId, @Field("c") String c, @Field("workId") String workId, @Field("page_no") String page_no, @Field("page_size") String page_size, @Field("deviceId") String deviceId);

    /**
     * 个人信息
     */
    @GET(Url.PERSON_INFO)
    Call<BaseDataBean<PersonBean>> getPersonInfo(@Query("profileId") long profile_id);

    /*

     */
/**
 * 段子
 *//*

    @FormUrlEncoded
    @POST(Url.PERSON_PARAGRAPH)
    Call<BaseDataBean<ParagraphBean>> getParagraph(@Field("userId") long userId, @Field("c") String c, @Field("showType") String showType, @Field("page_no") String page_no, @Field("page_size") String page_size, @Field("deviceId") String deviceId);
*/

    /**
     * 得到便当的列表
     *
     * @param currentPage
     * @param count
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PLAY_LIST_BYUSER)
    Call<BaseDataBean<PlayBean>> getParagraph(@Field("appoint_user_id") long appoint_user_id, @Field("page_no") String currentPage, @Field("page_size") String count);

    /**
     * 得到便当的列表
     *
     * @param currentPage
     * @param count
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PLAY_LIKE_LIST)
    Call<BaseDataBean<PlayBean>> getParagraphLike(@Field("appoint_user_id") long appoint_user_id, @Field("page_no") String currentPage, @Field("page_size") String count);

    /**
     * 作品
     *
     * @param userId
     * @param c
     * @param showType
     * @param page_no
     * @param page_size
     * @param deviceId
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PERSON_WORK)
    Call<BaseDataBean<VidePersonBean>> getWork(@Field("userId") long userId, @Field("c") String c, @Field("showType") String showType, @Field("page_no") String page_no, @Field("page_size") String page_size, @Field("deviceId") String deviceId);

    /**
     * 作品
     *
     * @param userId
     * @param c
     * @param showType
     * @param page_no
     * @param page_size
     * @param deviceId
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PERSON_WORK)
    Call<BaseDataBean<HomeBean.DataBean>> getWorks(@Field("userId") long userId, @Field("c") String c, @Field("showType") String showType, @Field("page_no") String page_no, @Field("page_size") String page_size, @Field("deviceId") String deviceId);

    /**
     * 修改用户信息
     */
    @FormUrlEncoded
    @POST(Url.PERSON_INFO)
    Call<BaseDataBean<PersonBean>> editUserInfo(@Field("image") String image, @Field("nickName") String nickName, @Field("birthday") String birthday, @Field("sex") int sex, @Field("areaid") String areaid, @Field("signature") String signature);

    /**
     * 修改用户信息
     */
    @FormUrlEncoded
    @POST(Url.PERSON_INFO)
    Call<BaseDataBean> editUserInfo(@Field("name") String name, @Field("value") String value);


    /**
     * 意见反馈
     */
    @FormUrlEncoded
    @POST(Url.FEED_BACK)
    Call<BaseDataBean<PersonBean>> feedback(@Field("content") String content, @Field("img") String img, @Field("phone") String phone, @Field("sign") String sign);

    /**
     *
     */
    @FormUrlEncoded
    @POST(Url.LABEL)
    Call<BaseDataBean<LabelBean>> getLabel(@Field("user_id") long user_id);

    /**
     * 尬聊列表
     */
    @FormUrlEncoded
    @POST(Url.AWKWARD_LIST)
    Observable<BaseDataBean<AwkwardBean>> getAwkwardList(@Field("page_no") String page_no, @Field("page_size") String page_size, @Field("video_info_id") String video_info_id);


    /**
     * 举报列表
     */
    @FormUrlEncoded
    @POST(Url.MESSAGE_REPORT)
    Observable<BaseDataBean<MessageReportBean>> getReportList(@Field("type") int type);

    /**
     * 举报原因上传服务器
     */
    @FormUrlEncoded
    @POST(Url.UPLOAD_REPORT)
    Observable<BaseDataBean<UploadReportBean>> uploadReport(@Field("type_msg_id") String report_id, @Field("workId") long id, @Field("type") int type, @Field("msg") String msg, @Field("img1") String img1, @Field("img2") String img2, @Field("img3") String img3, @Field("img4") String img4);

    /**
     * 拉黑
     */
    @FormUrlEncoded
    @POST(Url.PULL_BLACK)
    Observable<BaseDataBean<UploadReportBean>> pullBlack(@Field("black_user_id") String id);

    /**
     * 拉黑
     */
    @FormUrlEncoded
    @POST(Url.PULL_BLACK)
    Call<PullBlackBean> pullBlackUser(@Field("black_user_id") String id);

    /**
     * 取消拉黑
     */
    @FormUrlEncoded
    @POST(Url.CANCEL_PULL_BLACK)
    Call<PullBlackBean> cancelPullBlack(@Field("black_user_id") String id);

    /**
     * 查看拉黑状态
     */
    @FormUrlEncoded
    @POST(Url.READ_PULL_BLACK_STATE)
    Call<PullBlackBean> readPullBlackBlack(@Field("black_user_id") String id);


    /**
     * 得到七牛的签名
     *
     * @return
     */
    @FormUrlEncoded
    @POST(Url.SIGNA_TURE)
    Call<BaseDataBean<VideoSignBean>> getSign(@Field("type") String type);

    /**
     * 获取视频和分段视频信息
     */
    @FormUrlEncoded
    @POST(Url.COSTAR_VIDEO_INFO)
    Observable<BaseDataBean<JoinCostarBean>> getCostarVideoInfo(@Field("video_info_id") String video_info_id);

    /**
     * 三方绑定(友盟)
     */
    @FormUrlEncoded
    @POST(Url.THIRD_BIND)
    Observable<BaseDataBean<JoinCostarBean>> getThirdBind(@Field("thirdparty_token") String thirdparty_token, @Field("login_type") String login_type, @Field("nickname") String nickname, @Field("headpic") String headpic, @Field("open_id") String open_id);


    /**
     * 账号管理
     */
    @POST(Url.ACCOUNT_MANAGEMENT)
    Observable<BaseDataBean<ThirdBindBean>> getAccountMangeMent();

    /**
     * 三方解绑
     */
    @FormUrlEncoded
    @POST(Url.THIRD_UN_BIND)
    Observable<BaseDataBean<Integer>> getThirdUnBind(@Field("untie_type") String untie_type);

    /**
     * @我，赞我，评论我等页面的段子评论列表
     */
    @FormUrlEncoded
    @POST(Url.USER_COMMENT)
    Call<BaseDataBean<PlayCommont>> getUserPageComment(@Field("paragraph_id") String paragraph_id, @Field("page_no") String page, @Field("page_size") String page_size, @Field("comment_ids") String comment_ids);

    /**
     * @我，赞我，评论我等页面的段子评论列表
     */
    @FormUrlEncoded
    @POST(Url.USER_COMMENT)
    Call<Bean> getUserPageComment(@Field("paragraph_id") String paragraph_id, @Field("page_no") String page, @Field("page_size") String page_size);

    /**
     * @我，赞我，评论我等页面的视频评论列表
     */
    @FormUrlEncoded
    @POST(Url.VIDEO_COMMENT)
    Call<MessageVideoCommentBean> getVideoComment(@Field("userId") String userId,@Field("workId") String workId, @Field("commentId") String commentId,@Field("page_no") String page, @Field("page_size") String page_size);

    /**
     * @我，赞我，评论我等页面的段子进行评论或回复
     */
    @FormUrlEncoded
    @POST(Url.USER_MYCOMMENT)
    Call<UserCommentResultBean> getUserResultComment(@Field("paragraph_id") String paragraph_id, @Field("comment_type") String type, @Field("content") String content, @Field("comment_object_id") String reply_id);

    /**
     * @我，赞我，评论我等页面的段子进行评论或回复
     */
    @FormUrlEncoded
    @POST(Url.USER_MYCOMMENT)
    Call<UserCommentResultBean> getUserReplyComment(@Field("paragraph_id") String paragraph_id, @Field("comment_type") String type, @Field("content") String content, @Field("comment_object_id") String reply_id, @Field("is_top") String is_top);

    /**
     * @我，赞我，评论我等页面的视频进行评论或回复
     */
    @FormUrlEncoded
    @POST(Url.VIDEO_MYCOMMENT)
    Call<AddVideoCommentResultBean> getVideoResultComment(@Field("workId") String workId, @Field("parentCommentId") String parentCommentId, @Field("userId") String userId, @Field("commentMsg") String content, @Field("isTop") int isTop);

    /**
     * 手机解绑
     */
    @FormUrlEncoded
    @POST(Url.MOBILE_BIND)
    Observable<BaseDataBean<Object>> getMobileBind(@Field("phone") String mobile, @Field("verify_code") String verify_code, @Field("timestamp") String timestamp, @Field("bound_type") String bound_type);

    /**
     * 关注的人列表
     */
    @FormUrlEncoded
    @POST(Url.ATTENT_LIST)
    Observable<BaseDataBean<AttentFansbean>> getAttentList(@Field("page_no") int page_no, @Field("page_size") int page_size, @Field("follower_id") String follower_id);

    /**
     *
     */
//    @FormUrlEncoded
//    @POST(Url.RECOMMEND_LIST)
//    Observable<BaseDataBean<RecommenResp>> getReList(@Field("page_no") int page_no, @Field("page_size") int page_size);

    /**
     * 粉丝列表
     */
    @FormUrlEncoded
    @POST(Url.FAN_LIST)
    Observable<BaseDataBean<AttentFansbean>> getFanList(@Field("page_no") int page_no, @Field("page_size") int page_size, @Field("followee_id") String follower_id);

    /**
     * 粉丝列表
     */
    @FormUrlEncoded
    @POST(Url.PUBLISH_VIDEO)
    Observable<BaseDataBean<CommBean>> getPublishVideo(@Field("paragraph_id") String paragraph_id, @Field("json") String json);

    /**
     * 评论点赞
     */
    @FormUrlEncoded
    @POST(Url.COMMENT_LIKE)
    Call<BaseDataBean<String>> getCommLike(@Field("workId") String workId, @Field("userId") String userId, @Field("commentId") String commentId, @Field("type") String type);

    /**
     * 关注的人列表
     */
    @FormUrlEncoded
    @POST(Url.ATTENT_LIST)
    Call<BaseDataBean<AttentFansbean>> getAttentList(@Field("page_no") String page_no, @Field("page_size") String page_size, @Field("follower_id") String follower_id);

    /**
     * 获取音乐背景列表
     */
    @FormUrlEncoded
    @POST(Url.VIDEO_MUSIC_LIST)
    Observable<BaseDataBean<CommBean>> getVideoMusic(@Field("page_no") String page_no, @Field("page_size") String page_size);


    /**
     * 私信发送消息
     */
    @FormUrlEncoded
    @POST(Url.SEND_MESSAGE)
    Observable<BaseDataBean<Integer>> getChatSendMessage(@Field("contentType") String type, @Field("content") String content, @Field("targetId") long sourceId);

    /**
     * <<<<<<< Updated upstream
     * 段子或者评论点赞或取消点赞 点赞类型0-段子 1-段子评论或回复
     *
     * @param id
     * @param type
     * @return
     */
    @FormUrlEncoded
    @POST(Url.PRAISE_OR_NOT)
    Call<PullBlackBean> getPraiseYN(@Field("praise_type") String praise_type, @Field("object_id") String id, @Field("type") String type);


    /**
     * 删除评论
     */
    @FormUrlEncoded
    @POST(Url.DELETE_COMMENT)
    Call<PullBlackBean> getDeleteComment(@Field("comment_id") String comment_id);


    /**
     * 视频评论点赞
     */
    @FormUrlEncoded
    @POST(Url.VIDEO_PRISE)
    Call<BaseDataBean<CommBean>> getPriseState(@Field("workId") String workId,@Field("c") String c,@Field("deviceId") String deviceId, @Field("type") int type);

    /**
     * 便当视频列表
     */
    @FormUrlEncoded
    @POST(Url.XUPU_VIDEOLIST)
    Observable<BaseDataBean<HomeBean.DataBean>> getXiPuVideoList(@Field("paragraph_id") String paragraph_id, @Field("page_no") String page_no, @Field("page_size") String page_size, @Field("type") String type);

    /**
     * 标记私信通知为已读
     */
    @FormUrlEncoded
    @POST(Url.USER_READ)
    Observable<BaseDataBean<Integer>> getChatReadReslt(@Field("type") String type, @Field("maxId") int maxid, @Field("source") int source);

    /**
     * 标记@我赞我评论我通知为已读
     */
    @FormUrlEncoded
    @POST(Url.USER_READ)
    Observable<BaseDataBean<Integer>> getReadReslt(@Field("type") String type, @Field("maxId") int maxid);

    /**
     * 标记@我赞我评论我通知为已读
     */
    @FormUrlEncoded
    @POST(Url.COMMENT_DEL)
    Call<BaseDataBean<String>> getCommDel(@Field("commentId") String commentId);

    /**
     * 段子分享计数
     */
    @FormUrlEncoded
    @POST(Url.XI_PU_TRANSPONE)
    Observable<BaseDataBean<Integer>> getXiPuTranspone(@Field("object_id") String commentId);

    /**
     * 视屏分享计数
     */
    @FormUrlEncoded
    @POST(Url.VIDEO_TRANSPONE)
    Observable<BaseDataBean<Integer>> getVideoTranspone(@Field("video_id") String commentId);

    /**
     * 视频评分
     */
    @FormUrlEncoded
    @POST(Url.OPUS_GRADE)
    Call<BaseDataBean<String>> getGrade(@Field("video_id") String video_id, @Field("timestamp") long timestamp, @Field("video_time") int video_time);
    /**
     *添加或修改收货信息
     */
    @FormUrlEncoded
    @POST(Url.SAVEORUPDATERECEICEADDRESS)
    Observable<BaseDataBean<ProfileAdressBean>> changeAdress(@Field("id") long id,@Field("userName") String userName
            ,@Field("mobilePhone") String mobilePhone,@Field("region") String region,@Field("address") String address);
    @FormUrlEncoded
    @POST(Url.SAVEORUPDATERECEICEADDRESS)
    Observable<BaseDataBean<ProfileAdressBean>> addAdress(@Field("userName") String userName
            ,@Field("mobilePhone") String mobilePhone,@Field("region") String region,@Field("address") String address);
    /**
     * 获得收货人信息
     */
    @POST(Url.GETRECEICEADDRESS)
    Observable<BaseDataBean<ProfileAdressBean>> getProfile();
    /**
     *活动列表
     */
    @FormUrlEncoded
    @POST(Url.ACTIVITYLIST)
    Observable<BaseDataBean<FoundBean>> getActivityList(@Field("page_no") int page,@Field("page_size") int size);
    /**
     * 已读
     */
    @FormUrlEncoded
    @POST(Url.ACTIVITYREAD)
    Observable<BaseDataBean<DataBean>> showFoundActivityRead(@Field("activityId") long id);

    /**
     * 删除视频
     */
    @FormUrlEncoded
    @POST(Url.OPUS_DEL)
    Call<BaseDataBean<String>> getDel(@Field("video_id") String video_id);

    /**
     *
     */
    @FormUrlEncoded
    @POST(Url.VIDEOLIST)
    Observable<BaseDataBean<FoundAtBean>> getVideoList(@Field("activityId") long activityId, @Field("sortType") String sortType, @Field("page_no") int pageNo
                                                             , @Field("page_size") int page);
    /**
     * 晒奖
     */
    @FormUrlEncoded
    @POST(Url.SUNAWARD)
    Observable<BaseDataBean<MessageReportBean>> writeSunAward(@Field("activityId") long activityId,@Field("baskContent") String baskContent,@Field("imgList") String list);
    /**
     *活动未读数量
     */
    @POST(Url.NOTREAD)
    Observable<BaseDataBean<ReportBean>> readNotCount();
    /**
     * 活动已读状态
     *
     */
    @POST(Url.READALL)
    Call<BaseDataBean<ReportBean>> readDoneAll();
    /**
     * 手机是否绑定
     */
      @POST(Url.CHECKPHONE)
    Observable<BaseDataBean<BlindResp>> getCheckUserPhone();
    /**
     * join
     */
    @FormUrlEncoded
    @POST(Url.VIDEOINFO)
    Observable<BaseDataBean<BlindResp>> getCheckJoin(@Field("video_id") long video_id);

    /**
     * 活动已读状态
     *
     */
    @FormUrlEncoded
    @POST(Url.VIDEO_INFO)
    Observable<BaseDataBean<OpusBean>> getVideoInfo(@Field("video_id") String vvideo_id);
//    /**
    //
//
// /**
//     * 注销登录
//     */
//    @FormUrlEncoded
//    @POST(Url.LOGON_OUT)
//    Observable<BaseDataBean<CommBean>> getVideoTranspone(@Field("mobile") String mobile,@Field("video_id") String commentId,@Field("video_id") String commentId);

    /**
     * 得到关注新增数量
     *
     */
    @FormUrlEncoded
    @POST(Url.FOLLOW_COUNT)
    Observable<BaseDataBean<CommBackBean>> getFollowCountBean(@Field("timestamp") String timestamp,@Field("datetime") String datetime);
    /**
     * 搜索内容
     */
    @FormUrlEncoded
    @POST(Url.SEARCH_USER)
    Observable<BaseDataBean<SearchResp>> getSearchUserResp(@Field("search") String search,@Field("page_no") int page_no, @Field("page_size") int page_size);
    /**
     *
     */
    @FormUrlEncoded
    @POST(Url.USERRECOMMENDATION)
    Observable<BaseDataBean<SearchResp>> getSearchList(@Field("type") int type, @Field("page_no") int page_no, @Field("page_size") int page_size);

    /**
     * 关注界面推荐列表
     * @param type
     * @param page_no
     * @param page_size
     * @return
     */
    @FormUrlEncoded
    @POST(Url.USERRECOMMENDATION)
    Observable<BaseDataBean<RecommenResp>> getFocusList(@Field("type") int type, @Field("page_no") int page_no, @Field("page_size") int page_size);
    /**
     * @界面推荐列表
     * @param type
     * @param page_no
     * @param page_size
     * @return
     */
    @FormUrlEncoded
    @POST(Url.USERRECOMMENDATION)
    Call<BaseDataBean<RecommenResp>> getAtFocusList(@Field("type") int type, @Field("page_no") int page_no, @Field("page_size") int page_size);


    @FormUrlEncoded
    @POST(Url.EXCEPTION_UP_LOAD)
    Observable<BaseDataBean> getExceptionUpLoadData(@Field("log_url") String log_url);
    /**
     * 审核 推荐
     */
    @FormUrlEncoded
    @POST(Url.VIDEOREVIEW)
    Observable<BaseDataBean<String>> getRecommendAndCheck(@Field("video_id") String video_id,@Field("operate") int operate);
}
